Động cơ Hàm_nội_tuyến

Khai triển nội tuyến thường được dùng để loại bỏ thời gian quá dụng (overhead) xảy ra khi gọi một hàm; kỹ thuật này thường được dùng cho các hàm thực thi thường xuyên, vì khi đó thời gian quá dụng chiếm phần đáng kể. Hàm nội tuyến còn có tác dụng giảm không gian bộ nhớ mà các hàm nhỏ chiếm chỗ, đồng thời cho phép các kỹ thuật tối ưu hoá (optimization) khác biến đổi mã.

Nếu không có hàm nội tuyến thì lập trình viên sẽ có rất ít hoặc không có quyền quyết định xem hàm nào được là hàm nội tuyến, hàm nào không; mà việc này sẽ hoàn toàn do trình biên dịch quyết định. Việc bổ sung khả năng điều khiển này cho phép lập trình viên khai thác các kiến thức đặc thù về chương trình ứng dụng, chẳng hạn những hàm thường xuyên được thực thi, để lựa chọn xem hàm nào cần là hàm nội tuyến. Tuy nhiên, nhiều trình biên dịch (chẳng hạn cho ngôn ngữ C++) giữ quyền quyết định cuối cùng về việc một hàm đã được lập trình đặt chế độ nội tuyến có thể thực sự được là một hàm nội tuyến hay không, quyết định này thường được dựa vào việc nội dung của hàm này có khả thi cho việc khai triển nội tuyến hay không.

Thêm nữa, trong một số ngôn ngữ, các hàm nội tuyến tương tác gần gũi với mô hình biên dịch (compilation model); chẳng hạn trong C++, một hàm nội tuyến phải được định nghĩa trong tất cả các môđun sử dụng hàm đó, trong khi đó chỉ cần định nghĩa các hàm thông thường trong một môđun mà thôi. Điều này cho phép biên dịch các môđun một cách độc lập với tất cả các môđun khác.

Liên quan